{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c44ab89b",
   "metadata": {},
   "source": [
    "## Welcome to Tuplex!\n",
    "\n",
    "<p>\n",
    "<img src=\"https://tuplex.cs.brown.edu/_static/img/logo.png\" align=\"left\" style=\"margin-right: 32px; margin-bottom: 32px; margin-top: 32px;\" alt=\"Tuplex Logo\" width=\"200\"/>\n",
    "</p>\n",
    "\n",
    "\n",
    "[![Gitter](https://badges.gitter.im/tuplex/community.svg)](https://gitter.im/tuplex/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)\n",
    "\n",
    "[Website](https://tuplex.cs.brown.edu/) [Documentation](https://tuplex.cs.brown.edu/python-api.html)\n",
    "\n",
    "Tuplex is a parallel big data processing framework that runs data science pipelines written in Python at the speed of compiled code. \n",
    "Tuplex has similar Python APIs to [Apache Spark](https://spark.apache.org/) or [Dask](https://dask.org/), but rather than invoking the Python interpreter, Tuplex generates optimized LLVM bytecode for the given pipeline and input data set. Under the hood, Tuplex is based on data-driven compilation and dual-mode processing, two key techniques that make it possible for Tuplex to provide speed comparable to a pipeline written in hand-optimized C++.\n",
    "\n",
    "You can join the discussion on Tuplex on our [Gitter community](https://gitter.im/tuplex/community) or read up more on the background of Tuplex in our [SIGMOD'21 paper](https://dl.acm.org/doi/abs/10.1145/3448016.3457244).\n",
    "\n",
    "Contributions welcome!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "95686eb9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import tuplex"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9726ca5c",
   "metadata": {},
   "outputs": [],
   "source": [
    "c = tuplex.Context(conf={'webui.enable': False})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ca14937b",
   "metadata": {},
   "outputs": [],
   "source": [
    "c.parallelize([1, 2, 3, 4]).map(lambda x: x * x).collect()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e82e0f44",
   "metadata": {},
   "source": [
    "(c) 2017 - 2023 Tuplex Team"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
